package com.mallcai.bigdata.ladon.service.dashboard;

import com.alicp.jetcache.anno.Cached;
import com.mallcai.bigdata.ladon.dpl.entity.dashboard.SqlRunLogStatic;

import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

public interface ISqlRunLogStaticService {

    /**
     * 根据条件查询报表请求数信息
     *
     * @param params Map
     * @return List
     */
    public List<SqlRunLogStatic> getCountData(Map<String, Object> params);

    /**
     * 根据条件查询报表请求数信息
     *
     * @param params Map
     * @return List
     */
    public List<SqlRunLogStatic> getAvgTimeData(Map<String, Object> params);

    /**
     * 获取当前条件下的最多请求报表排名
     *
     * @param params Map
     * @return List
     */
    public List<SqlRunLogStatic> getTopCount(Map<String, Object> params);

    /**
     * 获取当前条件下的平均请求时间报表排名
     *
     * @param params Map
     * @return List
     */
    public List<SqlRunLogStatic> getTopAvgTime(Map<String, Object> params);

    /**
     * 合并插入日志统计
     */
    public int mergeInsert(List<SqlRunLogStatic> sqlRunLogStatics);

    /**
     * 总访问次数
     * @return int
     */
    @Cached(expire = 2, timeUnit = TimeUnit.MINUTES)
    public int totalVisitSize();
}
